home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995…tember: Reference Library / Dev.CD Sep 95 RL / Dev.CD Sep 95 RL.toast / mac / Technical Documentation / develop / develop Issue 18 code / Hierarchical Lists / Src / ListInAList.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-16  |  3.5 KB  |  168 lines  |  [TEXT/KAHL]

  1. /*                                    ListInAList.h                                */
  2. /*
  3.  * List In A List Sample
  4.  * ListInAList.h
  5.  * Copyright © 1993-94 Apple Computer Inc.
  6.  */
  7. #ifndef _ListInAList_
  8. #define _ListInAList_
  9.  
  10. #define MBAR_MenuBar        1
  11. #define MENU_Apple            1
  12. #define MENU_File            256
  13. #define MENU_Edit            257
  14. #define ACUR_Animator        256
  15.  
  16. #ifndef REZ
  17. #ifndef THINK_C                /* MPW includes            */
  18. #include <Processes.h>
  19. #include <Errors.h>
  20. #include <Finder.h>
  21. #include <Folders.h>
  22. #include <Script.h>
  23. #include <Types.h>
  24. #include <Resources.h>
  25. #include <QuickDraw.h>
  26. #include <Fonts.h>
  27. #include <Events.h>
  28. #include <Windows.h>
  29. #include <Menus.h>
  30. #include <TextEdit.h>
  31. #include <Dialogs.h>
  32. #include <Desk.h>
  33. #include <ToolUtils.h>
  34. #include <Memory.h>
  35. #include <Files.h>
  36. #include <OSUtils.h>
  37. #include <OSEvents.h>
  38. #include <DiskInit.h>
  39. #include <Packages.h>
  40. #include <Traps.h>
  41. #include <Lists.h>
  42. #endif
  43. #include <GestaltEqu.h>
  44.  
  45. #include "TwistDownList.h"
  46.  
  47. /*
  48.  *** Common definitions
  49.  */
  50. #ifndef EXTERN
  51. #define EXTERN                extern
  52. #endif
  53. #ifndef TRUE
  54. #define TRUE                1
  55. #define FALSE                0
  56. #endif
  57. #ifndef NULL
  58. #define NULL                0
  59. #endif
  60. #define SYNC                0                /* Synchronous I/O                */
  61. /*
  62.  * Because the rest of the window layout depends on the size
  63.  * of various pieces of text, we don't put these values into
  64.  * the parameter resource file.
  65.  */
  66. #define kListFontNumber            (geneva)
  67. #define kListFontSize            (10)
  68. #define    kScrollBarWidth         (16)
  69.  
  70. #define kAnimationInterval        (6)            /* Ticks                        */
  71.  
  72. /*
  73.  * This is used by the animated cursor subroutine.
  74.  */
  75. typedef struct {
  76.     unsigned short        nFrames;
  77.     unsigned short        nextFrame;
  78.     CursHandle            frame[1];
  79. } ACUR_Record, *ACUR_Ptr, **ACUR_Handle;
  80.  
  81. /*
  82.  * All of the information we need for browsing is stored in an extended
  83.  * window record.
  84.  */
  85. typedef struct BrowserRecord {
  86.     WindowRecord        theWindow;
  87.     ListHandle            theList;
  88.     TwistDownHdl        listHead;
  89. } BrowserRecord, *BrowserPtr;
  90.  
  91. /*
  92.  * Window management functions
  93.  */
  94. void                            MakeHFSBrowserWindow(void);
  95. void                            DisposeBrowser(
  96.         register BrowserPtr            browserPtr
  97.     );
  98. void                            DoContentClick(
  99.         register BrowserPtr            browserPtr
  100.     );
  101. void                            DoWindowKeyDown(
  102.         register BrowserPtr            browserPtr
  103.     );
  104. void                            UpdateBrowserWindow(
  105.         register BrowserPtr            browserPtr,
  106.         RgnHandle                    updateRgn
  107.     );
  108. void                            ActivateBrowser(
  109.         register BrowserPtr            browserPtr,
  110.         Boolean                        isActivating
  111.     );
  112.  
  113. /*
  114.  * Enumerate the HFS Catalog. This is a recursive function that is called at
  115.  * each level of the folder hierarchy. It returns the handle of the first
  116.  * element (file or folder) that it created.
  117.  */
  118. TwistDownHdl                    EnumerateHFSCatalog(
  119.         ListHandle                    theList,
  120.         short                        indentLevel,
  121.         short                        volumeRefNum,
  122.         long                        volumeDirIndex
  123.     );
  124.  
  125. /*
  126.  * Animated Cursor Utilities
  127.  */
  128. void                            SetupAnimatedCursor(
  129.         short                        ACUR_ResID
  130.     );
  131. void                            SpinCursor(void);
  132. extern void pstrcpy(
  133.         StringPtr                dst,
  134.         StringPtr                src
  135.     );
  136. extern void pstrcat(
  137.         StringPtr                dst,
  138.         StringPtr                src
  139.     );
  140. /*
  141.  * Cheap 'n dirty memory clear routine.
  142.  */
  143. #define Clear(dst) do {                                    \
  144.         Ptr                _ptr = (Ptr) &dst;                \
  145.         Size            _size = sizeof dst;                \
  146.         while (_size > 0) {                                \
  147.             *_ptr++ = 0;                                \
  148.             --_size;                                    \
  149.         }                                                \
  150.     } while (0)
  151.  
  152. /*
  153.  * Global values
  154.  */
  155. EXTERN EventRecord        gEventRecord;
  156. EXTERN Boolean            gQuitNow;
  157. EXTERN Boolean            gUpdateMenusNeeded;
  158. EXTERN BrowserPtr        gCurrentBrowserPtr;
  159. EXTERN short            gOpenWindowCount;
  160. EXTERN MenuHandle        gAppleMenu;
  161. EXTERN MenuHandle        gFileMenu;
  162. EXTERN MenuHandle        gEditMenu;
  163. EXTERN ACUR_Handle        gACUR_Handle;
  164. EXTERN unsigned long    gACUR_NextAnimation;
  165.  
  166. #endif    /* Not REZ */
  167. #endif    /* _ListInAList_    */
  168.